import React, { Component } from 'react'

export default class Test extends Component {
  constructor() {
    super()
    // this.num = 0  this是当前组件实例,我们可以随意的往实例上添加属性
    // this.num是组件的私有数据,但是不能称之为状态
    // this.state是组件的私有数据,但是可以称之为状态
    this.state = {
      count: 0,
      msg: 'hello component',
    }
  }
  render() {
    // 注意: render函数中的this,一定是当前组件实例
    console.log('render函数执行了', this.state.count)
    return (
      <div>
        <h3>{this.state.count}</h3>
        <button
          onClick={() => {
            // this.state.count++
            // setState的作用: 1. 修改state的数据 2. 让组件更新(页面更新)
            // setState是异步执行的
            this.setState({
              count: this.state.count + 1,
            })

            console.log(this.state.count)
          }}
        >
          +
        </button>
      </div>
    )
  }
}

/*
    伪代码: 
    React.Component = Component
    export default React 
    export Component

*/
